using KinonekoSoftware.CodariaDB.Documents.Index;

namespace KinonekoSoftware.CodariaDB.Documents.Personalities
{
    /// <summary>
    /// <see cref="Survey"/> 类型表示一个调查问卷（OC Ask），用来让设定变得更立体的。
    /// </summary>
    /// <remarks>
    /// <para><see cref="Survey"/> 类型用来让设定变得更立体，支持以下的操作：</para>
    /// <para>1. 可以关联某个剧情，用于引出某一个故事。</para>
    /// <para>2. 用于体现某个关键字或者印象，进而表达为什么。</para>
    /// <para>3. 作为灵感来源。</para>
    /// </remarks>
    public sealed class Survey : _Intro, ICloneable<Survey>
    {
        private string _value;
        private string _defaultValue;

        public Survey Clone()
        {
            var id = string.IsNullOrEmpty(Id) ? ID.Get() : Id;
            return new Survey
            {
                Id           = id,
                DefaultValue = DefaultValue,
                Name         = Name,
            };
        }

        /// <summary>
        /// 获取或设置 <see cref="DefaultValue"/> 属性。
        /// </summary>
        public string DefaultValue
        {
            get => _defaultValue;
            set => SetValue(ref _defaultValue, value);
        }

        /// <summary>
        /// 获取或设置 <see cref="Value"/> 属性。
        /// </summary>
        public string Value
        {
            get => _value;
            set => SetValue(ref _value, value);
        }
    }
}